package io.quarkus.liquibase.runtime.graal;

import java.security.SecureRandom;

import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;

@TargetClass(className = "liquibase.util.StringUtil")
final class SubstituteStringUtil {

    @Alias
    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
    private static SecureRandom rnd;

    @Substitute
    public static String randomIdentifer(int len) {
        SecureRandom rnd = new SecureRandom();
        final String AB = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++)
            sb.append(AB.charAt(rnd.nextInt(AB.length())));
        return sb.toString();
    }
}

package io.quarkus.liquibase.runtime.graal;

import java.security.SecureRandom;

import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.InjectAccessors;
import com.oracle.svm.core.annotate.TargetClass;

@TargetClass(className = "liquibase.util.StringUtil")
final class SubstituteStringUtil {

    @Alias
    @InjectAccessors(SecureRandomAccessors.class)
    private static SecureRandom rnd;

    public static final class SecureRandomAccessors {

        private static volatile SecureRandom volatileRandom;

        public static SecureRandom get() {
            SecureRandom localVolatileRandom = volatileRandom;
            if (localVolatileRandom == null) {
                synchronized (SecureRandomAccessors.class) {
                    localVolatileRandom = volatileRandom;
                    if (localVolatileRandom == null) {
                        volatileRandom = localVolatileRandom = new SecureRandom();
                    }
                }
            }
            return localVolatileRandom;
        }

        public static void set(SecureRandom rnd) {
            throw new IllegalStateException("The setter for liquibase.util.StringUtil#rnd shouldn't be called.");
        }
    }
}

Use @FieldAccessors to access liquibase.util.StringUtil#rnd