@Override
   protected Connection makeSourceConnection () throws SQLException {
      // Create a MongoDB client using the connection parameters specified in the ToolOptions
      String uri = options.getSourceConnect();
      ConnectionString connectionString = new ConnectionString(uri);

      String databaseName = connectionString.getDatabase();
      // if the database is not specified in the connection string, throw an exception
      if (Objects.isNull(databaseName)) {
         throw new IllegalArgumentException("The database must be specified in the connection string");
      }

      MongoClientSettings settings = MongoClientSettings.builder()
          .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(),
              MongoCompressor.createZlibCompressor(),
              MongoCompressor.createZstdCompressor()))
          .applyConnectionString(connectionString)
          .build();
      sourceMongoClient = MongoClients.create(settings);

      sourceDatabase = sourceMongoClient.getDatabase(databaseName);

      // MongoDB does not use traditional JDBC connections, so we can return null here
      return null;
   }
Constructs the SqlManager.

@param opts the ReplicaDB ToolOptions describing the user's requested action.
src/main/java/org/replicadb/manager/MongoDBManager.java