def METHOD_NAME(backend, db):
    obj_ids = (35, 40)
    corrupted_idx = 0
    for id_ in obj_ids:
        data = b'just some data that no-one really cares about %d' % id_
        db.execute(
            'INSERT INTO objects (id, refcount, phys_size, length, hash) VALUES(?, ?, ?, ?, ?)',
            (id_, 1, 27 * id_, len(data), sha256(data)),
        )
        backend['s3ql_data_%d' % id_] = data
    # Introduce checksum error
    db.execute('UPDATE objects SET hash=? WHERE id=?', (sha256(b'foobar'), obj_ids[corrupted_idx]))
    # When using a single thread, we can fake the backend factory
    backend_factory = lambda: backend
    missing_fh = io.StringIO()
    corrupted_fh = io.StringIO()
    with assert_logs('^Object %d is corrupted', count=1, level=logging.WARNING):
        verify.retrieve_objects(
            db, backend_factory, corrupted_fh, missing_fh, thread_count=1, full=True
        )
        assert missing_fh.getvalue() == ''
        assert corrupted_fh.getvalue() == 's3ql_data_%d\n' % obj_ids[corrupted_idx]