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

## Environment
**Liquibase Version**: 4.0.0

## Description
I am getting an NPE when I create a new FileSystemResourceAccessor(rootPath), with the following stack trace:

```
java.lang.NullPointerException
        at liquibase.Scope.getLog(Scope.java:278)
        at liquibase.resource.FileSystemResourceAccessor.addRootPath(FileSystemResourceAccessor.java:54)
        at liquibase.resource.FileSystemResourceAccessor.<init>(FileSystemResourceAccessor.java:36)
```

Looking at the Liquibase code, I see that SmartMap#get defines its result as a nullable, however, the Scope class does not check for null in this and other places.

## Steps To Reproduce
I'm running tests in my project, using liquibase-core:
Created this issue for tracking purposes, where you can also find the full stack trace: https://github.com/Treehopper/liquibase-lsp/issues/17

## Additional Context
In my project, I have to run scripts asynchronously. This, and the fact that the problem only occurs occasionally hints at a race-condition.


ClassLoader classLoader = getClassLoader();
        if (classLoader == null && fallbackToContextClassLoader) {
            return Thread.currentThread().getContextClassLoader();
        }
        return classLoader;
    }
    public ServiceLocator getServiceLocator() {
        return get(Attr.serviceLocator, ServiceLocator.class);
    }
    public ResourceAccessor getResourceAccessor() {
        return get(Attr.resourceAccessor, ResourceAccessor.class);
    }
    public String getLineSeparator() {
        return get(Attr.lineSeparator, System.lineSeparator());
    }
    public Charset getFileEncoding() {
        return get(Attr.fileEncoding, Charset.defaultCharset());
    }
    /**
     * Returns {@link LiquibaseListener}s defined in this scope and/or all its parents that are of the given type.
     */
    public <T extends LiquibaseListener> Collection<T> getListeners(Class<T> type) {
        List<T> returnList = new ArrayList<>();
        Scope scopeToCheck = this;
        while (scopeToCheck != null) {
            if (scopeToCheck.listener != null && type.isAssignableFrom(scopeToCheck.listener.getClass())) {
                returnList.add((T) scopeToCheck.listener);
            }
            scopeToCheck = scopeToCheck.getParent();
        }