code: def sqlite_to_csv(
      input_filename,
      table_name,
      output_filename,
      dialect=csv.excel,
      batch_size=10000,
      encoding="utf-8",
      callback=None,
      query=None,
  ):
      
  
      # TODO: should be able to specify fields
      # TODO: should be able to specify custom query
  
      if isinstance(dialect, six.text_type):
          dialect = csv.get_dialect(dialect)
  
      if query is None:
          query = "SELECT * FROM {}".format(table_name)
      connection = sqlite3.Connection(input_filename)
      cursor = connection.cursor()
      result = cursor.execute(query)
      header = [item[0] for item in cursor.description]
      fobj = open_compressed(output_filename, mode="w", encoding=encoding)
      writer = csv.writer(fobj, dialect=dialect)
      writer.writerow(header)
      total_written = 0
      for batch in rows.plugins.utils.ipartition(result, batch_size):
          writer.writerows(batch)
          written = len(batch)
          total_written += written
          if callback:
              callback(written, total_written)
      fobj.close()
docs: Export a table inside a SQLite database to CSV