A texture atlas is just a big image that is split into smaller images. So, you could have a tile spritesheet that is, say, 512x512 pixels, and then you jut draw your textures in 16x16 little squares, for instance. Then you just create a bufferedimage and loop through the atlas and to pick a texture, you get the coordinates of the texture you need and then read the rgb data in that square. To get the texture you want, loop from coordinate x to x + width and y to y + height, and get the rgb values of each pixel.
The whole point of spritesheets is to reduce the number of images loaded. With a texture atlas, you only need to load the atlas and then you’re done unless you need a different atlas.