<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def table_dataset_database_table( table = None, include_attributes = None, rows_limit = None, print_progress = False, ):
 """ Create a pyprel table contents list from a database table of the module dataset. Attributes to be included in the table can be specified; by default, all attributes are included. A limit on the number of rows included can be specified. Progress on building the table can be reported. """


    if print_progress:
        import shijian
        progress = shijian.Progress()
        progress.engage_quick_calculation_mode()
        number_of_rows = len(table)

    if include_attributes:
        columns = include_attributes
    else:
        columns = table.columns
    table_contents = [columns]
    for index_row, row in enumerate(table):
        if rows_limit is not None:
            if index_row >= rows_limit:
                break
        row_contents = []
        for column in columns:
            try:
                string_representation = str(row[column])
            except:
                string_representation = str(row[column].encode("utf-8"))
            row_contents.append(string_representation)
        table_contents.append(row_contents)
        if print_progress:
            print(progress.add_datum(
                fraction = float(index_row) / float(number_of_rows))
            )

    return table_contents