code: def list_databases(self, session=None, **kwargs):
          
          cmd = SON([("listDatabases", 1)])
          cmd.update(kwargs)
          admin = self._database_default_options("admin")
          res = admin._retryable_read_command(cmd, session=session)
          # listDatabases doesn't return a cursor (yet). Fake one.
          cursor = {
              "id": 0,
              "firstBatch": res["databases"],
              "ns": "admin.$cmd",
          }
          return CommandCursor(admin["$cmd"], cursor, None)
docs: Get a cursor over the databases of the connected server.
  
          :Parameters:
            - `session` (optional): a
              :class:`~pymongo.client_session.ClientSession`.
            - `**kwargs` (optional): Optional parameters of the
              `listDatabases command
              <https://docs.mongodb.com/manual/reference/command/listDatabases/>`_
              can be passed as keyword arguments to this method. The supported
              options differ by server version.
  
          :Returns:
            An instance of :class:`~pymongo.command_cursor.CommandCursor`.
  
          .. versionadded:: 3.6