<!--- 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.


return returnList;
    }
    @Override
    public String toString() {
        return describe();
    }
    public String describe() {
        String databaseName = null;
        Database database = getDatabase();
        if (database != null) {
            databaseName = database.getShortName();
            DatabaseConnection connection = database.getConnection();
            if (connection == null) {
                databaseName = "unconnected " + databaseName;
            } else if (connection instanceof OfflineConnection) {
                databaseName = "offline " + databaseName;
            } else if (connection instanceof JdbcConnection) {
                databaseName = "jdbc " + databaseName;
            }
        }
        return "scope(database=" + databaseName + ")";
    }
    public interface ScopedRunner<T> {
        void run() throws Exception;
    }
    public interface ScopedRunnerWithReturn<T> {
        T run() throws Exception;
    }
}