public function getOriginal($key = null, $default = null)
    {
        $original = parent::getOriginal($key, $default);
        if (!empty($this->json_values)) {
            if ($key === null) {
                foreach ($this->json_values as $column_name => &$json_data) {
                    $original[$column_name] = $json_data->getOriginal();
                }

                return $original;
            }
            $key_array = explode('.', $key, 2);
            if (count($key_array) > 1) {
                list($column_name, $json_key) = $key_array;
                if (array_key_exists($column_name, $this->json_values)) {
                    return $this->json_values[$column_name]->getOriginal($json_key, $default);
                }

                return $default;
            }
        }

        return $original;
    }