protected function _mergeFieldValues(array $newFieldData, array $oldFieldData, \Gems_Tracker_Engine_TrackEngineInterface $trackEngine)
    {
        $fieldMap = $trackEngine->getFieldsDefinition()->getFieldCodes();
        $output   = array();

        foreach ($fieldMap as $key => $code) {
            if ($code) {
                if (array_key_exists($code, $newFieldData)) {
                    $output[$key]  = $newFieldData[$code];
                    $output[$code] = $newFieldData[$code];
                } elseif (array_key_exists($key, $newFieldData)) {
                    $output[$key]  = $newFieldData[$key];
                    $output[$code] = $newFieldData[$key];
                } elseif (isset($oldFieldData[$code])) {
                    $output[$key]  = $oldFieldData[$code];
                    $output[$code] = $oldFieldData[$code];
                } elseif (isset($oldFieldData[$key])) {
                    $output[$key]  = $oldFieldData[$key];
                    $output[$code] = $oldFieldData[$key];
                } else {
                    $output[$key]  = null;
                    $output[$code] = null;
                }
            } else {
                if (array_key_exists($key, $newFieldData)) {
                    $output[$key]  = $newFieldData[$key];
                } elseif (isset($oldFieldData[$key])) {
                    $output[$key]  = $oldFieldData[$key];
                } else {
                    $output[$key]  = null;
                }
            }
        }

        return $output;
    }