@Override
  public byte[] serialize(final String topic, final List<?> data) {
    if (data == null) {
      return null;
    }

    try {
      final StringWriter stringWriter = new StringWriter();
      final CSVPrinter csvPrinter = new CSVPrinter(stringWriter, csvFormat);
      csvPrinter.printRecord(() -> new FieldIterator(data, schema));
      final String result = stringWriter.toString();
      return result.substring(0, result.length() - 2).getBytes(StandardCharsets.UTF_8);
    } catch (final Exception e) {
      throw new SerializationException("Error serializing CSV message", e);
    }
  }
@Test
  public void shouldSerializeReallyLargeDecimalWithoutScientificNotation() {
    // Given:
    givenSingleColumnSerializer(SqlTypes.decimal(10, 3));

    final List<?> values = Collections.singletonList(new BigDecimal("10000000000.000"));

    // When:
    final byte[] bytes = serializer.serialize("", values);

    // Then:
    assertThat(new String(bytes, StandardCharsets.UTF_8), is("10000000000.000"));
  }