private List <FieldDataItem> GetData(string itemId, string fieldName, string sectionName, string version, string path, string databaseName)
        {
            List <FieldDataItem> list = new List <FieldDataItem>();
            var singleItem            = new FieldDataItem()
            {
                FieldName = fieldName,
                Value     = null
            };

            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                if (!string.IsNullOrWhiteSpace(path))
                {
                    GetAllValuesByPath(path, databaseName).ForEach(v => list.Add(
                                                                       new FieldDataItem()
                    {
                        FieldName = v.Key,
                        Value     = v.Value,
                    }));
                }
                else if (string.IsNullOrWhiteSpace(fieldName) && string.IsNullOrWhiteSpace(sectionName) && string.IsNullOrWhiteSpace(version))
                {
                    GetAllValues(itemId, databaseName).ForEach(v => list.Add(
                                                                   new FieldDataItem()
                    {
                        FieldName = v.Key,
                        Value     = v.Value
                    }));
                }
                else if (string.IsNullOrWhiteSpace(version) && string.IsNullOrWhiteSpace(sectionName))
                {
                    var pair = GetValueForField(itemId, fieldName, databaseName);
                    singleItem.Value = pair.Value;
                    list.Add(singleItem);
                }
                else
                {
                    var item  = string.IsNullOrWhiteSpace(version) ? ItemHelper.GetItemById(itemId, databaseName) : ItemHelper.GetItemByIdAndVersion(itemId, version, databaseName);
                    var value = ItemHelper.GetFieldValue(item, sectionName, fieldName);
                    singleItem.Value = value;
                    list.Add(singleItem);
                }
            }

            return(list);
        }