class DatabaseSchemaVersionManager implements AppliedChangesProvider {

    public void recordScriptApplied(ChangeScript script) {
        try {
            queryExecuter.execute(
                    "INSERT INTO " + changeLogTableName + " (change_number, complete_dt, applied_by, description)" +
                            " VALUES (?, ?, ?, ?)",
                    script.getId(),
                    new Timestamp(timeProvider.now().getTime()),
                    queryExecuter.getDatabaseUsername(),
                    script.getDescription()
                    );
        } catch (SQLException e) {
            throw new SchemaVersionTrackingException("Could not update change log because: "
                    + e.getMessage(), e);
        }
    }

    public  DatabaseSchemaVersionManager(QueryExecuter queryExecuter, String changeLogTableName);

}