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


## Environment
**Liquibase Version**: 4.4.0

**Liquibase Integration & Version**: Quarkus

**Liquibase Extension(s) & Version**: 

**Database Vendor & Version**: H2

**Operating System Type & Version**: Fedora

## Description
I have noticed a large performance degradation between 4.4.0 and 4.3.5. When running the test for https://github.com/jhipster/jhipster-sample-app-quarkus using version 4.4.0 instead of 4.3.5 adds around 90s to the total testsuite runtime.

This appears to be due to `liquibase.configuration.pro.EnvironmentValueProvider` it seems to be used a lot to look for:

[liquibase.filterLogMessages]
[liquibase.pro.licenseKey]
[liquibase.hub.apiKey]

these same values are looked up repeatedly, and the iteration over all the env vars and then calling `StringUtil.toKabobCase` ends up being really expensive.

## Steps To Reproduce
Build build and test https://github.com/jhipster/jhipster-sample-app-quarkus, note the total build time, change to version 4.4.0 and build, locally I see an extra 2m total time.

## Actual Behavior
It is much slower than it used to be.

## Expected/Desired Behavior
Performance will be comparable to 4.3.5


private static final Pattern upperCasePattern = Pattern.compile(".*[A-Z].*");
    private static final Pattern lowerCasePattern = Pattern.compile(".*[a-z].*");
    private static final SecureRandom rnd = new SecureRandom();
    /**
     * Returns the trimmed (left and right) version of the input string. If null is passed, an empty string is returned.
     *
     * @param string the input string to trim
     * @return the trimmed string, or an empty string if the input was null.
     */
    public static String trimToEmpty(String string) {
        if (string == null) {
            return "";
        }
        return string.trim();
    }
    /**
     * Returns the trimmed (left and right) form of the input string. If the string is empty after trimming (or null
     * was passed in the first place), null is returned, i.e. the input string is reduced to nothing.
     * @param string the string to trim
     * @return the trimmed string or null
     */
    public static String trimToNull(String string) {
        if (string == null) {
            return null;
        }
        String returnString = string.trim();
        if (returnString.isEmpty()) {
            return null;