private function isTrackedFieldModified(AbstractDiffItem $item, ExtractionDescriptorInterface $relation)
    {
        if (!$item instanceof UpdateDiffItem) {
            throw new \InvalidArgumentException('Wrong diff item type. Got: ' . get_class($item));
        }

        $trackedFields = $relation->getUpdateFields();
        if (empty($trackedFields)) {
            return true;
        }

        $itemRow = $item->getItem();
        $oldItemRow = $item->getOldItem();

        foreach (array_keys($trackedFields) as $key) {
            if (array_key_exists($key, $itemRow) && $itemRow[$key] !== $oldItemRow[$key]) {
                return true;
            }
        }

        return false;
    }