docs: def get_database(self, name=None, codec_options=None, read_preference=None,
                       write_concern=None, read_concern=None):
          """Get a :class:`~pymongo.database.Database` with the given name and
          options.
  
          Useful for creating a :class:`~pymongo.database.Database` with
          different codec options, read preference, and/or write concern from
          this :class:`MongoClient`.
  
            >>> client.read_preference
            Primary()
            >>> db1 = client.test
            >>> db1.read_preference
            Primary()
            >>> from pymongo import ReadPreference
            >>> db2 = client.get_database(
            ...     'test', read_preference=ReadPreference.SECONDARY)
            >>> db2.read_preference
            Secondary(tag_sets=None)
  
          :Parameters:
            - `name` (optional): The name of the database - a string. If ``None``
              (the default) the database named in the MongoDB connection URI is
              returned.
            - `codec_options` (optional): An instance of
              :class:`~bson.codec_options.CodecOptions`. If ``None`` (the
              default) the :attr:`codec_options` of this :class:`MongoClient` is
              used.
            - `read_preference` (optional): The read preference to use. If
              ``None`` (the default) the :attr:`read_preference` of this
              :class:`MongoClient` is used. See :mod:`~pymongo.read_preferences`
              for options.
            - `write_concern` (optional): An instance of
              :class:`~pymongo.write_concern.WriteConcern`. If ``None`` (the
              default) the :attr:`write_concern` of this :class:`MongoClient` is
              used.
            - `read_concern` (optional): An instance of
              :class:`~pymongo.read_concern.ReadConcern`. If ``None`` (the
              default) the :attr:`read_concern` of this :class:`MongoClient` is
              used.
  
          .. versionchanged:: 3.5
             The `name` parameter is now optional, defaulting to the database
             named in the MongoDB connection URI.
          """
          if name is None:
              if self.__default_database_name is None:
                  raise ConfigurationError('No default database defined')
              name = self.__default_database_name
  
          return database.Database(
              self, name, codec_options, read_preference,
              write_concern, read_concern)