private static FullTextIndexDefinition GetExistingFullTextIndexDefinition(ITableDefinition table)
        {
            const string CommandText = @"
DECLARE @tableId INT = OBJECT_ID(@tableName)

SELECT
     OBJECT_NAME(i.object_id)
    ,fc.name
FROM sys.fulltext_indexes i
    INNER JOIN sys.fulltext_catalogs fc ON fc.fulltext_catalog_id = i.fulltext_catalog_id
WHERE i.object_id = @tableId

SELECT
     c.name
    ,ic.language_id
FROM sys.fulltext_index_columns ic
    INNER JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
WHERE ic.object_id = @tableId";

            var fullTableName = string.Format(CultureInfo.InvariantCulture, "[dbo].[{0}]", table.Name);

            using (var connectionManager = GetRuntimeDatabaseConnectionManager())
            {
                using (var cmd = new SqlCommand(CommandText, connectionManager.Connection))
                {
                    cmd.Parameters.AddWithValue("@tableName", fullTableName);

                    using (var reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            var index = new FullTextIndexDefinition { TableName = reader.GetString(0), CatalogName = reader.GetString(1) };

                            if (reader.NextResult())
                            {
                                while (reader.Read())
                                {
                                    var column = new FullTextIndexColumnDefinition { ColumnName = reader.GetString(0), LCID = reader.GetInt32(1) };
                                    index.Columns.Add(column);
                                }
                            }

                            return index;
                        }

                        return null;
                    }
                }
            }
        }
        private FullTextIndexDefinition GetFullTextIndexDefinition(ITableDefinition table)
        {
            var index = new FullTextIndexDefinition { TableName = table.Name, CatalogName = Constants.SqlServerFullTextCatalogName };

            foreach (var field in table.FieldList.Where(IncludeInFullTextIndex))
            {
                var columnName = field.ColumnName;
                if (columnName == Constants.DerivedProcessColumnName)
                {
                    if (Constants.SealedProcesses.Contains(table.Name))
                    {
                        continue;
                    }

                    columnName = Constants.DerivedProcessDisplayNameColumnName;
                }

                index.Columns.Add(new FullTextIndexColumnDefinition { ColumnName = columnName, LCID = GetFullTextLanguageId(field.CultureName) });
            }

            return index;
        }