<!--- This environment context section helps us quickly review your PR. 
      Please take a minute to fill-out this information. -->

## Environment
**Liquibase Version**: 4.3.4

**Liquibase Integration & Version**: CLI

**Database Vendor & Version**: PostgreSQL 12

**Operating System Type & Version**: Ubuntu 20.04

## Description
Hello,

I'm facing the same problem that's described in [this forum thread](https://forum.liquibase.org/t/access-postgis-from-different-schema/4708/3) (I did not reply in the forum because the number of links in a comment is restricted for new users). I'm using postgis as well but I guess it's the same for any extension that you would install on the public schema. The problem is that liquibase sets the search_path to only the default schema.

In the code, this is done in [DatabaseUtils#initializeDatabase](https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/database/core/DatabaseUtils.java#L36), which is called from [PostgresDatabase#rollback](https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/database/core/PostgresDatabase.java#L421) and the rollback function seems to be called for each changeset, after the preconditions are checked, in [ChangeSet#execute](https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/changelog/ChangeSet.java#L614).

I think that the problem was introduced with this commit: https://github.com/liquibase/liquibase/commit/feb2412. Before that, the search_path was not forced for each changeset, and there was no problem using an extension from the public schema without using prefixes.

I guess that there was a good reason to force the search_path, but I think that there should be an option to override the default behavior and to allow the user to set a custom search_path.

## Steps To Reproduce
With postgis:

* Add the postgis extension to the public schema: `CREATE EXTENSION postgis;`
* Run liquibase on another schema (`my_schema`) with the following changeset:

```
create table my_schema.test_table (
     a_box        Box2D
)
```

Liquibase will fail with the following error:

```
ERROR: type "box2d" does not exist
```

Thanks.


public PostgresDatabase() {
        super.setCurrentDateTimeFunction("NOW()");
        
        
        reservedWords.addAll(Arrays.asList("ALL", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC",
                "ASYMMETRIC", "AUTHORIZATION", "BINARY", "BOTH", "CASE", "CAST", "CHECK", "COLLATE", "COLLATION",
                "COLUMN", "CONCURRENTLY", "CONSTRAINT", "CREATE", "CROSS", "CURRENT_CATALOG", "CURRENT_DATE",
                "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DEFAULT",
                "DEFERRABLE", "DESC", "DISTINCT", "DO", "ELSE", "END", "EXCEPT", "FALSE", "FETCH", "FOR", "FOREIGN",
                "FREEZE", "FROM", "FULL", "GRANT", "GROUP", "HAVING", "ILIKE", "IN", "INITIALLY", "INNER", "INTERSECT",
                "INTO", "IS", "ISNULL", "JOIN", "LATERAL", "LEADING", "LEFT", "LIKE", "LIMIT", "LOCALTIME",
                "LOCALTIMESTAMP", "NATURAL", "NOT", "NOTNULL", "NULL", "OFFSET", "ON", "ONLY", "OR", "ORDER", "OUTER",
                "OVERLAPS", "PLACING", "PRIMARY", "REFERENCES", "RETURNING", "RIGHT", "SELECT", "SESSION_USER",
                "SIMILAR", "SOME", "SYMMETRIC", "TABLE", "TABLESAMPLE", "THEN", "TO", "TRAILING", "TRUE", "UNION",
                "UNIQUE", "USER", "USING", "VARIADIC", "VERBOSE", "WHEN", "WHERE", "WINDOW", "WITH"));
        super.sequenceNextValueFunction = "nextval('%s')";
        super.sequenceCurrentValueFunction = "currval('%s')";
        super.unmodifiableDataTypes.addAll(Arrays.asList("bool", "int4", "int8", "float4", "float8", "bigserial", "serial", "oid", "bytea", "date", "timestamptz", "text", "int2[]", "int4[]", "int8[]", "float4[]", "float8[]", "bool[]", "varchar[]", "text[]"));
        super.unquotedObjectsAreUppercased=false;
    }
    @Override
    public boolean equals(Object o) {
        
        return super.equals(o);
    }
    @Override
    public int hashCode() {
        
        return super.hashCode();
    }