public synchronized ImmutableList<Struct> readTableRecords(String tableId, String... columnNames)
      throws IllegalStateException {
    return readTableRecords(tableId, ImmutableList.copyOf(columnNames));
  }
@Test
  public void testReadRecordsShouldThrowExceptionWhenSpannerReadFails()
      throws ExecutionException, InterruptedException {
    // arrange
    prepareTable();
    when(spanner.getDatabaseClient(any()).singleUse().read(any(), any(), any()))
        .thenThrow(SpannerException.class);
    ImmutableList<String> columnNames = ImmutableList.of("SingerId");

    // act & assert
    assertThrows(
        SpannerResourceManagerException.class,
        () -> testManager.readTableRecords("Singers", "SingerId"));
    assertThrows(
        SpannerResourceManagerException.class,
        () -> testManager.readTableRecords("Singers", columnNames));
  }