Criar um método exibirProdutos() usando um ArrayList<String>

Olá pessoas, eu sou iniciante em java e estou pagando uma disciplina de POO na faculdade. Estou travado nesse método da classe BaseDados que eu criei:

public static ArrayList exibirProduto(){}

Será que alguém pode me ajudar??

Classe BaseDados:

package sistemaSupermercado;

import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;

public class BaseDados {
	
	private static ArrayList<Produto> produtos;
	
	public static void createBase() {
		if(produtos!=null)
			produtos = new ArrayList<Produto>();
	}
	
	public static void inicializarBase() {
		createBase();
		addProduto(new Produto("PROD001",
							"Feijão da Serra",
							9.00,
							new Date(2022, 10, 12),
							false));
		
		addProduto(new Produto("PROD003",
							"Laranja formosa",
							0.50,
							new Date(2022, 8, 30),
							false));
	}	

	private static Produto buscarProduto(String codBarras) {
		for(Produto produtoCurrent:produtos) {
			if(produtoCurrent.getCodBarras().equalsIgnoreCase(codBarras)) {
				return produtoCurrent;
			}
		}
		return null;
	}
	
	public static boolean isProduto(Produto produto) {
		return produtos.contains(buscarProduto(produto.codBarras));
	}
	
	public static boolean addProduto(Produto produto) {
		if(produto!=null && !isProduto(produto)) {
			JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso!");
			return produtos.add(produto);
		}
		
		JOptionPane.showMessageDialog(null, "Produto já cadastrado!");
		return false;
	}
	
	public static boolean removerProduto(Produto produto) {
		return produtos.remove(buscarProduto(produto.codBarras));
	}
	
	public static ArrayList<String> exibirProduto(){}
}

Classe Produto:

package sistemaSupermercado;

import java.util.Date;

public class Produto {
	
	public String codBarras;
	private String nome;
	protected double preco;
	private Date validade;
	private boolean perecivel;
	
	public Produto(String codBarras, String nome, double preco, Date validade, boolean perecivel) {
		
		this.codBarras = codBarras;
		this.nome = nome;
		this.preco = preco;
		this.validade = validade;
		this.perecivel = perecivel;
	}
	
	public String getCodBarras() {
		return codBarras;
	}
	
	public void setCodBarras(String codBarras) {
		this.codBarras = codBarras;
	}
	
	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public double getPreco() {
		return preco;
	}
	
	public void setPreco(double preco) {
		this.preco = preco;
	}
	
	public Date getValidade() {
		return validade;
	}
	
	public void setValidade(Date validade) {
		this.validade = validade;
	}
	
	public boolean isPerecivel() {
		return perecivel;
	}
	
	public void setPerecivel(boolean perecivel) {
		this.perecivel = perecivel;
	}

	@Override
	public String toString() {
		return "Produto [codBarras=" + codBarras + ", nome=" + nome + ", preco=" + preco +
				", validade=" + validade + ", perecivel=" + perecivel + "]";
	}
}

Se quiserem sugerir alguma melhoria ou precisarem de alguma informação sobre o código fiquem à vontade.

Porque fez todos os métodos static?

Porque o método exibirProdutos retorna uma lista?
É pra ele exibir o conteúdo de uma lista ou retornar uma lista?
São coisas diferentes.

Segundo o professor todos os métodos são > static pq estamos trabalhando só com uma base de dados, e quanto ao método eu não sei se é pra retornar ou exibir a lista, estou perdido nisso tbm. Só sei que ele deve ser chamado no main()

Então pergunte ao seu professor o que é para ser feito.