"""Convert a list of dictionaries to a list of rows using the specified header order.

This function transforms a list of dictionaries into a list of rows, where each row is a list of string values. The order of the values in each row is determined by the provided headers. Missing or `None` values are converted to empty strings.

Args:
    data: A list of dictionaries to convert. Each dictionary represents a row, with keys corresponding to column headers.
    headers: A list of column headers that define the order of values in the resulting rows. If empty, a `ValueError` is raised.

Returns:
    A list of rows, where each row is a list of string values in the order specified by the headers.

Raises:
    ValueError: If the `headers` list is empty, as headers are required to determine the order of values in the rows.

Examples:
    >>> _convert_dicts_to_rows([{'col1': 1, 'col2': 'value'}], ['col1', 'col2'])
    [['1', 'value']]
    >>> _convert_dicts_to_rows([{'col1': None, 'col2': 3.14}], ['col1', 'col2'])
    [['', '3.14']]
    >>> _convert_dicts_to_rows([{'col1': True, 'col2': False}], ['col1', 'col2'])
    [['True', 'False']]
    >>> _convert_dicts_to_rows([{'col1': 'value1'}, {'col1': 'value2'}], ['col1'])
    [['value1'], ['value2']]
"""
You should write code starting with:
from typing import Any, List

def _convert_dicts_to_rows(data: List[Dict[str, Any]], headers: List[str]) -> List[List[str]]:
    pass

