private static void PrepareAndThrowUnknownColumnExceptionMessage(string indetifier, ISchemaColumn[] columns)
        {
            var library    = new TransitionLibrary();
            var candidates = new StringBuilder();

            var candidatesColumns = columns.Where(col =>
                                                  library.Soundex(col.ColumnName) == library.Soundex(indetifier) ||
                                                  library.LevenshteinDistance(col.ColumnName, indetifier).Value < 3).ToArray();

            for (int i = 0; i < candidatesColumns.Length - 1; i++)
            {
                ISchemaColumn candidate = candidatesColumns[i];
                candidates.Append(candidate.ColumnName);
                candidates.Append(", ");
            }

            if (candidatesColumns.Length > 0)
            {
                candidates.Append(candidatesColumns[candidatesColumns.Length - 1].ColumnName);

                throw new UnknownColumnException($"Column '{indetifier}' could not be found. Did you mean to use [{candidates.ToString()}]?");
            }

            throw new UnknownColumnException($"Column {indetifier} could not be found.");
        }