docs: def _list_tables(self, max_results=None, marker=None, timeout=None):
          '''
          Returns a list of tables under the specified account. Makes a single list 
          request to the service. Used internally by the list_tables method.
  
          :param int max_results:
              The maximum number of tables to return. A single list request may 
              return up to 1000 tables and potentially a continuation token which 
              should be followed to get additional resutls.
          :param marker:
              A dictionary which identifies the portion of the query to be
              returned with the next query operation. The operation returns a
              next_marker element within the response body if the list returned
              was not complete. This value may then be used as a query parameter
              in a subsequent call to request the next portion of the list of
              queues. The marker value is opaque to the client.
          :type marker: obj
          :param int timeout:
              The server timeout, expressed in seconds.
          :return: A list of tables, potentially with a next_marker property.
          :rtype: list of :class:`~azure.storage.models.table.Table`:  
          '''
          request = HTTPRequest()
          request.method = 'GET'
          request.host = self._get_host()
          request.path = '/Tables'
          request.headers = [('Accept', TablePayloadFormat.JSON_NO_METADATA)]
          request.query = [
              ('$top', _int_to_str(max_results)),
              ('NextTableName', _to_str(marker)),
              ('timeout', _int_to_str(timeout)),
          ]
  
          response = self._perform_request(request)
          return _convert_json_response_to_tables(response)