@@ -0,0 +1,1832 @@
+package liquibase.diff.compare.core;%0A%0Aimport liquibase.CatalogAndSchema;%0Aimport liquibase.database.Database;%0Aimport liquibase.diff.ObjectDifferences;%0Aimport liquibase.diff.compare.CompareControl;%0Aimport liquibase.diff.compare.DatabaseObjectComparator;%0Aimport liquibase.diff.compare.DatabaseObjectComparatorChain;%0Aimport liquibase.structure.DatabaseObject;%0Aimport liquibase.structure.core.Catalog;%0Aimport liquibase.structure.core.Schema;%0A%0Aimport java.util.Set;%0A%0Apublic class CatalogComparator implements DatabaseObjectComparator %7B%0A    @Override%0A    public int getPriority(Class%3C? extends DatabaseObject%3E objectType, Database database) %7B%0A        if (Catalog.class.isAssignableFrom(objectType)) %7B%0A            return PRIORITY_TYPE;%0A        %7D%0A        return PRIORITY_NONE;%0A    %7D%0A%0A    @Override%0A    public String%5B%5D hash(DatabaseObject databaseObject, Database accordingTo, DatabaseObjectComparatorChain chain) %7B%0A       return null;%0A    %7D%0A%0A    @Override%0A    public boolean isSameObject(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, DatabaseObjectComparatorChain chain) %7B%0A        if (!(databaseObject1 instanceof Catalog && databaseObject2 instanceof Catalog)) %7B%0A            return false;%0A        %7D%0A%0A        return databaseObject1.getName().equalsIgnoreCase(databaseObject2.getName());%0A    %7D%0A%0A    @Override%0A    public ObjectDifferences findDifferences(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, CompareControl compareControl, DatabaseObjectComparatorChain chain, Set%3CString%3E exclude) %7B%0A        ObjectDifferences differences = new ObjectDifferences(compareControl);%0A        differences.compare(%22name%22, databaseObject1, databaseObject2, new ObjectDifferences.DatabaseObjectNameCompareFunction(Schema.class, accordingTo));%0A%0A        return differences;%0A    %7D%0A%7D%0A

Catalog comparisions should be case insensitive