class UUIDType extends LiquibaseDataType {
    @Override
    public DatabaseDataType toDatabaseDataType(Database database) {
        try {
            if (database instanceof H2Database
                    || (database instanceof PostgresDatabase && database.getDatabaseMajorVersion() * 10 + database.getDatabaseMinorVersion() >= 83)
                    || (database instanceof HsqlDatabase && database.getDatabaseMajorVersion() * 10 + database.getDatabaseMinorVersion() >= 24)) {
                return new DatabaseDataType("UUID");
            }
        } catch (DatabaseException e) {
            // fall back
        }

        if (database instanceof MSSQLDatabase) {
            return new DatabaseDataType(database.escapeDataTypeName("uniqueidentifier"));
        }
        if ((database instanceof SybaseASADatabase) || (database instanceof SybaseDatabase)) {
            return new DatabaseDataType("UNIQUEIDENTIFIER");
        }
        if (database instanceof OracleDatabase) {
            return new DatabaseDataType("RAW",16);
        }
        if (database instanceof SQLiteDatabase) {
            return new DatabaseDataType("TEXT");
        }
        try {
            if(database instanceof MariaDBDatabase && ((database.getDatabaseMajorVersion() == 10 && database.getDatabaseMinorVersion() >= 7)
                    || database.getDatabaseMajorVersion() >= 11)) {
                return new DatabaseDataType("UUID");
            }
        } catch (DatabaseException e) {
            try {
                throw new DatabaseException("UUID data type is not supported in versions lower than 10.7");
            } catch (DatabaseException ex) {
                throw new RuntimeException(ex);
            }
        }
        return new DatabaseDataType("char", 36);
    }

    @Override
    protected String otherToSql(Object value, Database database) {<FILL_FUNCTION_BODY>}

    @Override
    public LoadDataChange.LOAD_DATA_TYPE getLoadTypeName() {
        return LoadDataChange.LOAD_DATA_TYPE.UUID;
    }

}

        if (value == null) {
            return null;
        }
        if (database instanceof MSSQLDatabase) {
            return "'" + value.toString().toUpperCase(Locale.ENGLISH) + "'";
        }
        return super.otherToSql(value, database);
    
<methods>public void <init>() ,public void addParameter(java.lang.Object) ,public boolean equals(java.lang.Object) ,public void finishInitialization(java.lang.String) ,public java.lang.String getAdditionalInformation() ,public java.lang.String[] getAliases() ,public abstract liquibase.change.core.LoadDataChange.LOAD_DATA_TYPE getLoadTypeName() ,public int getMaxParameters(liquibase.database.Database) ,public int getMinParameters(liquibase.database.Database) ,public java.lang.String getName() ,public java.lang.Object[] getParameters() ,public int getPriority() ,public java.lang.String getRawDefinition() ,public int hashCode() ,public boolean isAutoIncrement() ,public java.lang.String objectToSql(java.lang.Object, liquibase.database.Database) ,public void setAdditionalInformation(java.lang.String) ,public java.lang.Object sqlToObject(java.lang.String, liquibase.database.Database) ,public boolean supports(liquibase.database.Database) ,public liquibase.datatype.DatabaseDataType toDatabaseDataType(liquibase.database.Database) ,public java.lang.String toString() ,public boolean validate(liquibase.database.Database) <variables>private java.lang.String additionalInformation,private final non-sealed java.lang.String[] aliases,private final non-sealed int maxParameters,private final non-sealed int minParameters,private final non-sealed java.lang.String name,private final List<java.lang.Object> parameters,private final non-sealed int priority,private java.lang.String rawDefinition