public Scheme.SchemeDefinition RetrieveSchemeDefinition(IDbConnection connection)
        {
            SchemeDefinition scheme = new SchemeDefinition();

            RetrieveTables(connection, scheme);

            return scheme;
        }
        private void RetrieveTables(IDbConnection connection, SchemeDefinition scheme)
        {
            using (IDbCommand cmd = connection.CreateCommand())
            {
                cmd.CommandText = "SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA";
                using (IDataReader reader = cmd.ExecuteReader())
                {
                    TableDefinition table = new TableDefinition();
                    table.Name = reader["TABLE_NAME"] as string;

                    RetrieveColumns(connection, table);

                    scheme.Tables.Add(table);
                }
            }
        }